/*
  Grupo 2
  
  Luiz Felipe de Souza Mattos 	RA 107822
  
  Debora Maia Silva 	      	RA 101985

*/

#include "heap.h"
#include <limits.h>

typedef struct _listaVizinho
{
	int indice;
	struct _listaVizinho * prox;
} ListaVizinho;

typedef struct _listaPrincipal
{
	int caminhomin;
	ListaVizinho * viz;
} ListaPrincipal;

typedef struct _grafo
{
	ListaPrincipal *vetor;
}Grafo;

typedef struct _listaCorresponde
{
	int indice;
	char site[500];
	struct _listaCorresponde *prox;
} ListaCorresponde;

void LimpaVetor(char *site);
Grafo * MontaGrafo(int tamanho);
void insereCorresponde (ListaCorresponde **lista, char *site, int ind);
void insereVizinho (ListaVizinho **lista, int numVizinho);
int corresponde (ListaCorresponde **lista, char *site);
void dijkstra (Grafo *grafo,int indice1,int tam);
void liberaListaP (Grafo **lista,int tamanho);
void liberaListaC (ListaCorresponde **lista);

